<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>38.4. Zend_Service_Audioscrobbler</title>
<link rel="stylesheet" href="dbstyle.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
<link rel="start" href="index.html" title="Programmer's Reference Guide">
<link rel="up" href="zend.service.html" title="Chapter 38. Zend_Service">
<link rel="prev" href="zend.service.amazon.html" title="38.3. Zend_Service_Amazon">
<link rel="next" href="zend.service.delicious.html" title="38.5. Zend_Service_Delicious">
<link rel="chapter" href="introduction.html" title="Chapter 1. Introduction to Zend Framework">
<link rel="chapter" href="zend.acl.html" title="Chapter 2. Zend_Acl">
<link rel="chapter" href="zend.auth.html" title="Chapter 3. Zend_Auth">
<link rel="chapter" href="zend.cache.html" title="Chapter 4. Zend_Cache">
<link rel="chapter" href="zend.config.html" title="Chapter 5. Zend_Config">
<link rel="chapter" href="zend.console.getopt.html" title="Chapter 6. Zend_Console_Getopt">
<link rel="chapter" href="zend.controller.html" title="Chapter 7. Zend_Controller">
<link rel="chapter" href="zend.currency.html" title="Chapter 8. Zend_Currency">
<link rel="chapter" href="zend.date.html" title="Chapter 9. Zend_Date">
<link rel="chapter" href="zend.db.html" title="Chapter 10. Zend_Db">
<link rel="chapter" href="zend.debug.html" title="Chapter 11. Zend_Debug">
<link rel="chapter" href="zend.dojo.html" title="Chapter 12. Zend_Dojo">
<link rel="chapter" href="zend.dom.html" title="Chapter 13. Zend_Dom">
<link rel="chapter" href="zend.exception.html" title="Chapter 14. Zend_Exception">
<link rel="chapter" href="zend.feed.html" title="Chapter 15. Zend_Feed">
<link rel="chapter" href="zend.filter.html" title="Chapter 16. Zend_Filter">
<link rel="chapter" href="zend.form.html" title="Chapter 17. Zend_Form">
<link rel="chapter" href="zend.gdata.html" title="Chapter 18. Zend_Gdata">
<link rel="chapter" href="zend.http.html" title="Chapter 19. Zend_Http">
<link rel="chapter" href="zend.infocard.html" title="Chapter 20. Zend_InfoCard">
<link rel="chapter" href="zend.json.html" title="Chapter 21. Zend_Json">
<link rel="chapter" href="zend.layout.html" title="Chapter 22. Zend_Layout">
<link rel="chapter" href="zend.ldap.html" title="Chapter 23. Zend_Ldap">
<link rel="chapter" href="zend.loader.html" title="Chapter 24. Zend_Loader">
<link rel="chapter" href="zend.locale.html" title="Chapter 25. Zend_Locale">
<link rel="chapter" href="zend.log.html" title="Chapter 26. Zend_Log">
<link rel="chapter" href="zend.mail.html" title="Chapter 27. Zend_Mail">
<link rel="chapter" href="zend.measure.html" title="Chapter 28. Zend_Measure">
<link rel="chapter" href="zend.memory.html" title="Chapter 29. Zend_Memory">
<link rel="chapter" href="zend.mime.html" title="Chapter 30. Zend_Mime">
<link rel="chapter" href="zend.openid.html" title="Chapter 31. Zend_OpenId">
<link rel="chapter" href="zend.paginator.html" title="Chapter 32. Zend_Paginator">
<link rel="chapter" href="zend.pdf.html" title="Chapter 33. Zend_Pdf">
<link rel="chapter" href="zend.registry.html" title="Chapter 34. Zend_Registry">
<link rel="chapter" href="zend.rest.html" title="Chapter 35. Zend_Rest">
<link rel="chapter" href="zend.search.lucene.html" title="Chapter 36. Zend_Search_Lucene">
<link rel="chapter" href="zend.server.html" title="Chapter 37. Zend_Server">
<link rel="chapter" href="zend.service.html" title="Chapter 38. Zend_Service">
<link rel="chapter" href="zend.session.html" title="Chapter 39. Zend_Session">
<link rel="chapter" href="zend.soap.html" title="Chapter 40. Zend_Soap">
<link rel="chapter" href="zend.test.html" title="Chapter 41. Zend_Test">
<link rel="chapter" href="zend.text.html" title="Chapter 42. Zend_Text">
<link rel="chapter" href="zend.timesync.html" title="Chapter 43. Zend_TimeSync">
<link rel="chapter" href="zend.translate.html" title="Chapter 44. Zend_Translate">
<link rel="chapter" href="zend.uri.html" title="Chapter 45. Zend_Uri">
<link rel="chapter" href="zend.validate.html" title="Chapter 46. Zend_Validate">
<link rel="chapter" href="zend.version.html" title="Chapter 47. Zend_Version">
<link rel="chapter" href="zend.view.html" title="Chapter 48. Zend_View">
<link rel="chapter" href="zend.xmlrpc.html" title="Chapter 49. Zend_XmlRpc">
<link rel="appendix" href="requirements.html" title="Appendix A. Zend Framework Requirements">
<link rel="appendix" href="coding-standard.html" title="Appendix B. Zend Framework Coding Standard for PHP">
<link rel="appendix" href="copyrights.html" title="Appendix C. Copyright Information">
<link rel="index" href="the.index.html" title="Index">
<link rel="subsection" href="zend.service.audioscrobbler.html#zend.service.audioscrobbler.introduction" title="38.4.1. Introduction to Searching Audioscrobbler">
<link rel="subsection" href="zend.service.audioscrobbler.html#zend.service.audioscrobbler.users" title="38.4.2. Users">
<link rel="subsection" href="zend.service.audioscrobbler.html#zend.service.audioscrobbler.artists" title="38.4.3. Artists">
<link rel="subsection" href="zend.service.audioscrobbler.html#zend.service.audioscrobbler.tracks" title="38.4.4. Tracks">
<link rel="subsection" href="zend.service.audioscrobbler.html#zend.service.audioscrobbler.tags" title="38.4.5. Tags">
<link rel="subsection" href="zend.service.audioscrobbler.html#zend.service.audioscrobbler.groups" title="38.4.6. Groups">
<link rel="subsection" href="zend.service.audioscrobbler.html#zend.service.audioscrobbler.forums" title="38.4.7. Forums">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader"><table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">38.4. Zend_Service_Audioscrobbler</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="zend.service.amazon.html">Prev</a> </td>
<th width="60%" align="center">Chapter 38. Zend_Service</th>
<td width="20%" align="right"> <a accesskey="n" href="zend.service.delicious.html">Next</a>
</td>
</tr>
</table></div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="zend.service.audioscrobbler"></a>38.4. Zend_Service_Audioscrobbler</h2></div></div></div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.service.audioscrobbler.introduction"></a>38.4.1. Introduction to Searching Audioscrobbler</h3></div></div></div>
<p>
            <code class="code">Zend_Service_Audioscrobbler</code> is a simple API for using the Audioscrobbler REST Web Service. The
            Audioscrobbler Web Service provides access to its database of Users, Artists, Albums, Tracks, Tags, Groups,
            and Forums. The methods of the <code class="code">Zend_Service_Audioscrobbler</code> class begin with one of these terms.
            The syntax and namespaces of the Audioscrobbler Web Service are mirrored in
            <code class="code">Zend_Service_Audioscrobbler</code>. For more information about the Audioscrobbler REST Web Service,
            please visit the <a href="http://www.audioscrobbler.net/data/webservices/" target="_top">Audioscrobbler Web Service
            site</a>.
        </p>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.service.audioscrobbler.users"></a>38.4.2. Users</h3></div></div></div>
<p>
            In order to retrieve information for a specific user, the <code class="code">setUser()</code> method is first used to
            select the user for which data are to be retrieved. <code class="code">Zend_Service_Audioscrobbler</code> provides
            several methods for retrieving data specific to a single user:
            </p>
<div class="itemizedlist"><ul type="disc">
<li><p>
                        <code class="code">userGetProfileInformation()</code>: Returns a SimpleXML object containing the current
                        user's profile information.
                    </p></li>
<li><p>
                        <code class="code">userGetTopArtists()</code>: Returns a SimpleXML object containing a list of the current
                        user's most listened to artists.
                    </p></li>
<li><p>
                        <code class="code">userGetTopAlbums()</code>: Returns a SimpleXML object containing a list of the current
                        user's most listened to albums.
                    </p></li>
<li><p>
                        <code class="code">userGetTopTracks()</code>: Returns a SimpleXML object containing a list of the current
                        user's most listened to tracks.
                    </p></li>
<li><p>
                        <code class="code">userGetTopTags()</code>: Returns a SimpleXML object containing a list of tags most applied
                        by the current user.
                    </p></li>
<li><p>
                        <code class="code">userGetTopTagsForArtist()</code>: Requires that an artist be set via
                        <code class="code">setArtist()</code>. Returns a SimpleXML object containing the tags most applied to the
                        current artist by the current user.
                    </p></li>
<li><p>
                        <code class="code">userGetTopTagsForAlbum()</code>: Requires that an album be set via
                        <code class="code">setAlbum()</code>. Returns a SimpleXML object containing the tags most applied to the
                        current album by the current user.
                    </p></li>
<li><p>
                        <code class="code">userGetTopTagsForTrack()</code>: Requires that a track be set via
                        <code class="code">setTrack()</code>. Returns a SimpleXML object containing the tags most applied to the
                        current track by the current user.
                    </p></li>
<li><p>
                        <code class="code">userGetFriends()</code>: Returns a SimpleXML object containing the user names of the
                        current user's friends.
                    </p></li>
<li><p>
                        <code class="code">userGetNeighbours()</code>: Returns a SimpleXML object containing the user names of
                        people with similar listening habits to the current user.
                    </p></li>
<li><p>
                        <code class="code">userGetRecentTracks()</code>: Returns a SimpleXML object containing the 10 tracks most
                        recently played by the current user.
                    </p></li>
<li><p>
                        <code class="code">userGetRecentBannedTracks()</code>: Returns a SimpleXML object containing a list of the 10
                        tracks most recently banned by the current user.
                    </p></li>
<li><p>
                        <code class="code">userGetRecentLovedTracks()</code>: Returns a SimpleXML object containing a list of the 10
                        tracks most recently loved by the current user.
                    </p></li>
<li><p>
                        <code class="code">userGetRecentJournals()</code>: Returns a SimpleXML object containing a list of the
                        current user's most recent journal entries.
                    </p></li>
<li><p>
                        <code class="code">userGetWeeklyChartList()</code>: Returns a SimpleXML object containing a list of weeks for
                        which there exist Weekly Charts for the current user.
                    </p></li>
<li><p>
                        <code class="code">userGetRecentWeeklyArtistChart()</code>: Returns a SimpleXML object containing the most
                        recent Weekly Artist Chart for the current user.
                    </p></li>
<li><p>
                        <code class="code">userGetRecentWeeklyAlbumChart()</code>: Returns a SimpleXML object containing the most
                        recent Weekly Album Chart for the current user.
                    </p></li>
<li><p>
                        <code class="code">userGetRecentWeeklyTrackChart()</code>: Returns a SimpleXML object containing the most
                        recent Weekly Track Chart for the current user.
                    </p></li>
<li><p>
                        <code class="code">userGetPreviousWeeklyArtistChart($fromDate, $toDate)</code>: Returns a SimpleXML object
                        containing the Weekly Artist Chart from <code class="code">$fromDate</code> to <code class="code">$toDate</code> for the
                        current user.
                    </p></li>
<li><p>
                        <code class="code">userGetPreviousWeeklyAlbumChart($fromDate, $toDate)</code>: Returns a SimpleXML object
                        containing the Weekly Album Chart from <code class="code">$fromDate</code> to <code class="code">$toDate</code> for the
                        current user.
                    </p></li>
<li><p>
                        <code class="code">userGetPreviousWeeklyTrackChart($fromDate, $toDate)</code>: Returns a SimpleXML object
                        containing the Weekly Track Chart from <code class="code">$fromDate</code> to <code class="code">$toDate</code> for the
                        current user.
                    </p></li>
</ul></div>
<p>
        </p>
<div class="example">
<a name="zend.service.audioscrobbler.users.example.profile_information"></a><p class="title"><b>Example 38.11. Retrieving User Profile Information</b></p>
<div class="example-contents">
<p>
                In this example, we use the <code class="code">setUser()</code> and <code class="code">userGetProfileInformation()</code> methods
                to retrieve a specific user's profile information:
            </p>
<pre class="programlisting">&lt;?php
require_once 'Zend/Service/Audioscrobbler.php';
$as = new Zend_Service_Audioscrobbler();
$as-&gt;setUser('BigDaddy71'); // Set the user whose profile information we want to retrieve
$profileInfo = $as-&gt;userGetProfileInformation(); // Retrieve BigDaddy71's profile information
print "Information for $profileInfo-&gt;realname can be found at $profileInfo-&gt;url"; // Display some of it
            </pre>
</div>
</div>
<br class="example-break"><div class="example">
<a name="zend.service.audioscrobbler.users.example.weekly_artist_chart"></a><p class="title"><b>Example 38.12. Retrieving a User's Weekly Artist Chart</b></p>
<div class="example-contents"><pre class="programlisting">&lt;?php
require_once 'Zend/Service/Audioscrobbler.php';
$as = new Zend_Service_Audioscrobbler();
$as-&gt;setUser('lo_fye'); // Set the user whose profile weekly artist chart we want to retrieve
$weeks = $as-&gt;userGetWeeklyChartList(); // Retrieves a list of previous weeks for which there are chart data
if (count($weeks) &lt; 1) {
    echo 'No data available';
}
sort($weeks); // Order the list of weeks

$as-&gt;setFromDate($weeks[0]); // Set the starting date
$as-&gt;setToDate($weeks[0]); // Set the ending date

$previousWeeklyArtists = $as-&gt;userGetPreviousWeeklyArtistChart();

echo 'Artist Chart For Week Of ' . date('Y-m-d h:i:s', $as-&gt;from_date) . '&lt;br /&gt;';

foreach ($previousWeeklyArtists as $artist) {
    // Display the artists' names with links to their profiles
    print '&lt;a href="' . $artist-&gt;url . '"&gt;' . $artist-&gt;name . '&lt;/a&gt;&lt;br /&gt;';
}
            </pre></div>
</div>
<br class="example-break">
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.service.audioscrobbler.artists"></a>38.4.3. Artists</h3></div></div></div>
<p>
            <code class="code">Zend_Service_Audioscrobbler</code> provides several methods for retrieving data about a specific
            artist, specified via the <code class="code">setArtist()</code> method:
            </p>
<div class="itemizedlist"><ul type="disc">
<li><p>
                        <code class="code">artistGetRelatedArtists()</code>: Returns a SimpleXML object containing a list of
                        Artists similar to the current Artist.
                    </p></li>
<li><p>
                        <code class="code">artistGetTopFans()</code>: Returns a SimpleXML object containing a list of Users who
                        listen most to the current Artist.
                    </p></li>
<li><p>
                        <code class="code">artistGetTopTracks()</code>: Returns a SimpleXML object containing a list of the current
                        Artist's top-rated Tracks.
                    </p></li>
<li><p>
                        <code class="code">artistGetTopAlbums()</code>: Returns a SimpleXML object containing a list of the current
                        Artist's top-rated Albums.
                    </p></li>
<li><p>
                        <code class="code">artistGetTopTags()</code>: Returns a SimpleXML object containing a list of the Tags most
                        frequently applied to current Artist.
                    </p></li>
</ul></div>
<p>
        </p>
<div class="example">
<a name="zend.service.audioscrobbler.artists.example.related_artists"></a><p class="title"><b>Example 38.13. Retrieving Related Artists</b></p>
<div class="example-contents"><pre class="programlisting">&lt;?php
require_once 'Zend/Service/Audioscrobbler.php';
$as = new Zend_Service_Audioscrobbler();
$as-&gt;setArtist('LCD Soundsystem'); // Set the artist for whom you would like to retrieve related artists
$relatedArtists = $as-&gt;artistGetRelatedArtists(); // Retrieve the related artists
foreach ($relatedArtists as $artist) {
    print '&lt;a href="' . $artist-&gt;url . '"&gt;' . $artist-&gt;name . '&lt;/a&gt;&lt;br /&gt;'; // Display the related artists
}
            </pre></div>
</div>
<br class="example-break">
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.service.audioscrobbler.tracks"></a>38.4.4. Tracks</h3></div></div></div>
<p>
            <code class="code">Zend_Service_Audioscrobbler</code> provides two methods for retrieving data specific to a single
            track, specified via the <code class="code">setTrack()</code> method:
            </p>
<div class="itemizedlist"><ul type="disc">
<li><p>
                        <code class="code">trackGetTopFans()</code>: Returns a SimpleXML object containing a list of Users who
                        listen most to the current Track.
                    </p></li>
<li><p>
                        <code class="code">trackGetTopTags()</code>: Returns a SimpleXML object containing a list of the Tags most
                        frequently applied to the current Track.
                    </p></li>
</ul></div>
<p>
        </p>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.service.audioscrobbler.tags"></a>38.4.5. Tags</h3></div></div></div>
<p>
            <code class="code">Zend_Service_Audioscrobbler</code> provides several methods for retrieving data specific to a single
            tag, specified via the <code class="code">setTag()</code> method:
            </p>
<div class="itemizedlist"><ul type="disc">
<li><p>
                        <code class="code">tagGetOverallTopTags()</code>: Returns a SimpleXML object containing a list of Tags most
                        frequently used on Audioscrobbler.
                    </p></li>
<li><p>
                        <code class="code">tagGetTopArtists()</code>: Returns a SimpleXML object containing a list of Artists to whom
                        the current Tag was most frequently applied.
                    </p></li>
<li><p>
                        <code class="code">tagGetTopAlbums()</code>: Returns a SimpleXML object containing a list of Albums to which
                        the current Tag was most frequently applied.
                    </p></li>
<li><p>
                        <code class="code">tagGetTopTracks()</code>: Returns a SimpleXML object containing a list of Tracks to which
                        the current Tag was most frequently applied.
                    </p></li>
</ul></div>
<p>
        </p>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.service.audioscrobbler.groups"></a>38.4.6. Groups</h3></div></div></div>
<p>
            <code class="code">Zend_Service_Audioscrobbler</code> provides several methods for retrieving data specific to a single
            group, specified via the <code class="code">setGroup()</code> method:
            </p>
<div class="itemizedlist"><ul type="disc">
<li><p>
                        <code class="code">groupGetRecentJournals()</code>: Returns a SimpleXML object containing a list of recent
                        journal posts by Users in the current Group.
                    </p></li>
<li><p>
                        <code class="code">groupGetWeeklyChart()</code>: Returns a SimpleXML object containing a list of weeks for
                        which there exist Weekly Charts for the current Group.
                    </p></li>
<li><p>
                        <code class="code">groupGetRecentWeeklyArtistChart()</code>: Returns a SimpleXML object containing the most
                        recent Weekly Artist Chart for the current Group.
                    </p></li>
<li><p>
                        <code class="code">groupGetRecentWeeklyAlbumChart()</code>: Returns a SimpleXML object containing the most
                        recent Weekly Album Chart for the current Group.
                    </p></li>
<li><p>
                        <code class="code">groupGetRecentWeeklyTrackChart()</code>: Returns a SimpleXML object containing the most
                        recent Weekly Track Chart for the current Group.
                    </p></li>
<li><p>
                        <code class="code">groupGetPreviousWeeklyArtistChart($fromDate, $toDate)</code>: Requires
                        <code class="code">setFromDate()</code> and <code class="code">setToDate()</code>. Returns a SimpleXML object containing
                        the Weekly Artist Chart from the current fromDate to the current toDate for the current Group.
                    </p></li>
<li><p>
                        <code class="code">groupGetPreviousWeeklyAlbumChart($fromDate, $toDate)</code>: Requires
                        <code class="code">setFromDate()</code> and <code class="code">setToDate()</code>. Returns a SimpleXML object containing
                        the Weekly Album Chart from the current fromDate to the current toDate for the current Group.
                    </p></li>
<li><p>
                        <code class="code">groupGetPreviousWeeklyTrackChart($fromDate, $toDate)</code>: Returns a SimpleXML object
                        containing the Weekly Track Chart from the current fromDate to the current toDate for the
                        current Group.
                    </p></li>
</ul></div>
<p>
        </p>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.service.audioscrobbler.forums"></a>38.4.7. Forums</h3></div></div></div>
<p>
            <code class="code">Zend_Service_Audioscrobbler</code> provides a method for retrieving data specific to a single forum,
            specified via the <code class="code">setForum()</code> method:
            </p>
<div class="itemizedlist"><ul type="disc"><li><p>
                        <code class="code">forumGetRecentPosts()</code>: Returns a SimpleXML object containing a list of recent posts
                        in the current forum.
                    </p></li></ul></div>
<p>
        </p>
</div>
</div>
<div class="navfooter"><table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="zend.service.amazon.html">Prev</a> </td>
<td width="20%" align="center"><a accesskey="u" href="zend.service.html">Up</a></td>
<td width="40%" align="right"> <a accesskey="n" href="zend.service.delicious.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">38.3. Zend_Service_Amazon </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td>
<td width="40%" align="right" valign="top"> 38.5. Zend_Service_Delicious</td>
</tr>
</table></div>
<div class="revinfo"></div>
</body>
</html>
